As computer systems have increased in power and capacity, and particularly as graphic display subsystems increase in power and capacity, it is has become more and more commonplace for computer systems to include more than one display device or monitor. As an example, FIG. 1 illustrates a typical, exemplary multi-monitor computer system 100 including a computer 102, a first monitor 104 (sometimes referred to as the primary monitor), and a second monitor 106.
Multi-monitor computer systems are not exclusive to typical desktop systems, such as the exemplary system 100. Instead, multi-monitor computer systems are found on a variety of computer systems including, but not limited to: notebook or tablet computers; hand-held personal digital assistants (PDAs); multi-user computer systems such as mini- and mainframe computers; and the like. Furthermore, many multi-monitor display systems exist that are not connected to a computer system.
Irrespective of the underlying base computer system, or system in general, each multi-monitor system is faced with a similar issue: how to manage the display of information across multiple monitors. For example, the actual display areas of the multiple monitors are separated by the frames of the monitors as well as the physical separation of the monitors, hereafter referred to as an “occlusion area.” Physical alignment of monitors impacts the display of information across multiple monitors. Additionally, multiple monitors attached to the system may not be identical, or even nearly identical. As shown in FIG. 1, monitor 104 and monitor 106 have different physical dimensions. Screen resolution, i.e., the number of pixels displayed on a monitor, and pixel resolution, i.e., the physical size of a pixel, also affect multi-monitor display. All of these differences and conditions contribute to making the display of information on a multi-monitor system a challenge.
The typical approach by which most computer systems “deal” with multi-monitor issues systems is to conceptualize a single, contiguous display surface (referred to hereafter as the “display surface”) that encompasses the display areas of all monitors. Thus, to the system, and to any applications that wish to render to the attached display system, there is only one surface on which to write. The computer system's graphics display subsystem is responsible for mapping information written to the display surface to each monitor's display area. Thus, software applications write to a single display surface entirely unaware that some information may be displayed across multiple monitors, and the graphics display subsystem takes care of putting the information onto the appropriate monitor. Unfortunately, this approach fails to recognize or compensate for the differences and conditions that exist among the multiple monitors attached to a computer system. As a result, the display anomalies that arise from failing to compensate for these differences and conditions must be sorted out, when possible, by the user's imagination. The following examples illustrate more clearly these display anomalies.
FIG. 2A is a pictorial diagram illustrating an exemplary display surface 200 upon which a single horizontal line 202 has been drawn. The display surface 200 encompasses two display areas, display area 204 and display area 206, corresponding to two monitors in a multi-monitor system that have the same screen resolution. As can be seen, a software application has rendered line 202 as a continuous, horizontal line on the display surface 200, very likely unaware of any display area regions. Naturally, the expectation is that the line 202 will appear as a continuous, horizontal line to the computer user. However, because no effort is made to identify and compensate for differences between monitors, this is not always the case.
FIG. 2B is a pictorial diagram of the exemplary multi-monitor computer system 100 displaying the horizontal line 202 described above. Display areas 204 and 206 (FIG. 2A) correspond to the display areas of monitors 104 and 106. As can be seen, even when the screen resolution between monitor 104 and 106 is the same, due to differences in the actual physical dimensions of monitors 104-106, the physical alignment of the monitors, and separation of the monitors, line 202 visually appears as two distinct lines, line segment 208 and line segment 210, on the multi-monitor computer system 100. Obviously, unless a user/viewer is aware that a software application was rendering a single line 202, the user/viewer is unlikely to interpret line segments 208 and 210 as segments of line 202.
Another factor contributing to the user's confusion as to whether line segment 208 and line segment 210 are actually portions of line 202 is the fact that line segment 210 appears to be drawn thicker than line segment 208. This is due to differences in pixel resolution. As mentioned above, it is assumed that the monitor 104 and monitor 106 share the same screen resolution, i.e., number of displayed pixels. For example, both monitor 104 and monitor 106 could have a screen resolution of 1280 by 1024, meaning there are 1280 pixels in each row of pixels and that there are 1024 pixels in each column of pixels. However, even though screen resolutions are similar, monitor 104 and monitor 106 are of different physical sizes. Thus, to share screen resolution, the pixel resolution for the monitors must be different. In other words, the pixel resolution, i.e., the size or dimension of each pixel, on monitor 104 is smaller than the pixel resolution on monitor 106. As such, even though line 202 is drawn on the display surface 200 with a constant pixel thickness, the apparent/visual thickness of line segment 208 is thinner than the apparent visual thickness of line segment 210 due to pixel resolution differences.
FIGS. 3A-3C further illustrate another display problem that arises when failing to account for differences and conditions in multi-monitor systems. More particularly, FIG. 3A illustrates the display surface 200 encompassing the display areas 204 and 206 of monitors 104 and 106. Again, it is assumed that the screen resolution for each monitor is the same. On the display surface 200, a software application has rendered two diagonal lines, such that a first portion 302 of the diagonal lines falls in display area 204 and the second portion 304 of the diagonal lines falls in display area 206.
FIG. 3B is a pictorial diagram illustrating the diagonal lines displayed on the display areas of monitor 104 and monitor 106. As can be seen, due to the physical separation of the monitors, the alignment of the monitors, the difference in physical size of the monitors, and the differences in pixel resolution, it is difficult for a user to visualize whether or how the first portion 302 of the diagonal lines aligns with the second portion 304 of the diagonal lines. In fact, due to the failure to compensate for the differences mentioned above, it is far more likely that a user visualizes the first portion 302 and second portion 304 of the two diagonal lines as two portions of three diagonal lines displayed on the display surface 200, such as depicted on the display surface 200 in FIG. 3C.
Accordingly, what is needed, is a system and method to determine the differences between monitors in a multi-monitor computer system so that software applications on the computer system that render to a display surface 200 may compensate for such differences. The present invention addresses these and other issues found in the prior art.